package cn.iocoder.yudao.module.trade.api.order.dto;

import java.math.BigDecimal;
import lombok.Data;

/**
 * 交易订单项 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class TradeOrderItemRespDTO {

    // ========== 订单项基本信息 ==========

    private Long id;

    private Long userId;

    private Long orderId;

    // ========== 商品基本信息 ==========

    private Long spuId;

    private String spuName;

    private Long skuId;

    private String picUrl;

    private Integer count;

    // ========== 价格 + 支付基本信息 ==========

    private Integer price;

    private Integer discountPrice;

    private Integer payPrice;

    private Integer orderPartPrice;

    private Integer orderDividePrice;

    /**
     * 是否自定义面值
     */
    private Boolean customDenomination;
    /**
     * 面值
     */
    private Integer nominalValue;
    /**
     * 充值账号
     */
    private String rechargeAccount;
    /**
     * 充值密码
     */
    private String rechargePassword;
    /**
     * 充值游戏
     */
    private String rechargeGame;
    /**
     * 充值区
     */
    private String rechargeArea;
    /**
     * 充值服
     */
    private String rechargeServer;
    /**
     * 计费方式
     */
    private String billingMethod;
    /**
     * 游戏角色
     */
    private String gameRole;
    /**
     * 联系电话
     */
    private String contactPhone;
    /**
     * 联系 QQ
     */
    private String contactQq;
    /**
     * 接收邮箱
     */
    private String receiveEmail;
    /**
     * 币种
     */
    private String currencyCode;
    /**
     * 汇率
     */
    private BigDecimal exchangeRate;
    /**
     * 充值方式：直充/卡密
     */
    private Integer rechargeMethod;
    /**
     * 发货方式：自动/手动
     */
    private Integer deliveryMethod;

    /**
     * 面值
     */
    private String denomination;

    /**
     * 调用支付时价格（总），单位：分
     */
    private Integer paymentPrice;

    /**
     * 卡密商品编号
     */
    private String cardKeyProductNo;

    // ========== 新增eSim SKU 相关字段 =========

    /**
     * eSim流量大小
     */
    private Integer esDataAllowanceMb;

    /**
     * eSim有效期
     */
    private Integer esValidityPeriodDays;

    /**
     * eSim商品id
     */
    private String esProductId;

}
